home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Events.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  9.4 KB  |  345 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Events.p
  3.  
  4.      Contains:    Event Manager Interfaces.
  5.  
  6.      Version:    Technology:    Mac OS 8
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Events;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __EVENTS__}
  28. {$SETC __EVENTS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC EventsIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __OSUTILS__}
  35. {$I OSUtils.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __QUICKDRAW__}
  38. {$I Quickdraw.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __MACTYPES__}
  41. {$I MacTypes.p}
  42. {$ENDC}
  43.  
  44. {$IFC NOT TARGET_OS_MAC }
  45. {$IFC UNDEFINED __ENDIAN__}
  46. {$I Endian.p}
  47. {$ENDC}
  48. {$ENDC}
  49.  
  50.  
  51. {$PUSH}
  52. {$ALIGN MAC68K}
  53. {$LibExport+}
  54.  
  55.  
  56. TYPE
  57.     EventKind                            = UInt16;
  58.     EventMask                            = UInt16;
  59.  
  60. CONST
  61.     nullEvent                    = 0;
  62.     mouseDown                    = 1;
  63.     mouseUp                        = 2;
  64.     keyDown                        = 3;
  65.     keyUp                        = 4;
  66.     autoKey                        = 5;
  67.     updateEvt                    = 6;
  68.     diskEvt                        = 7;
  69.     activateEvt                    = 8;
  70.     osEvt                        = 15;
  71.     kHighLevelEvent                = 23;
  72.  
  73.     mDownMask                    = $02;                            {  mouse button pressed }
  74.     mUpMask                        = $04;                            {  mouse button released }
  75.     keyDownMask                    = $08;                            {  key pressed }
  76.     keyUpMask                    = $10;                            {  key released }
  77.     autoKeyMask                    = $20;                            {  key repeatedly held down }
  78.     updateMask                    = $40;                            {  window needs updating }
  79.     diskMask                    = $80;                            {  disk inserted }
  80.     activMask                    = $0100;                        {  activate/deactivate window }
  81.     highLevelEventMask            = $0400;                        {  high-level events (includes AppleEvents) }
  82.     osMask                        = $8000;                        {  operating system events (suspend, resume) }
  83.     everyEvent                    = $FFFF;                        {  all of the above }
  84.  
  85.     charCodeMask                = $000000FF;
  86.     keyCodeMask                    = $0000FF00;
  87.     adbAddrMask                    = $00FF0000;
  88.     osEvtMessageMask            = $FF000000;
  89.  
  90.                                                                 {  OS event messages.  Event (sub)code is in the high byte of the message field. }
  91.     mouseMovedMessage            = $00FA;
  92.     suspendResumeMessage        = $0001;
  93.  
  94.     resumeFlag                    = 1;                            {  Bit 0 of message indicates resume vs suspend }
  95.     convertClipboardFlag        = 2;                            {  Bit 1 in resume message indicates clipboard change }
  96.  
  97.  
  98.  
  99. TYPE
  100.     EventModifiers                        = UInt16;
  101.  
  102. CONST
  103.                                                                 {  modifiers  }
  104.     activeFlagBit                = 0;                            {  activate? (activateEvt and mouseDown) }
  105.     btnStateBit                    = 7;                            {  state of button? }
  106.     cmdKeyBit                    = 8;                            {  command key down? }
  107.     shiftKeyBit                    = 9;                            {  shift key down? }
  108.     alphaLockBit                = 10;                            {  alpha lock down? }
  109.     optionKeyBit                = 11;                            {  option key down? }
  110.     controlKeyBit                = 12;                            {  control key down? }
  111.     rightShiftKeyBit            = 13;                            {  right shift key down? }
  112.     rightOptionKeyBit            = 14;                            {  right Option key down? }
  113.     rightControlKeyBit            = 15;                            {  right Control key down? }
  114.  
  115.     activeFlag                    = $01;
  116.     btnState                    = $80;
  117.     cmdKey                        = $0100;
  118.     shiftKey                    = $0200;
  119.     alphaLock                    = $0400;
  120.     optionKey                    = $0800;
  121.     controlKey                    = $1000;
  122.     rightShiftKey                = $2000;
  123.     rightOptionKey                = $4000;
  124.     rightControlKey                = $8000;
  125.  
  126.     kNullCharCode                = 0;
  127.     kHomeCharCode                = 1;
  128.     kEnterCharCode                = 3;
  129.     kEndCharCode                = 4;
  130.     kHelpCharCode                = 5;
  131.     kBellCharCode                = 7;
  132.     kBackspaceCharCode            = 8;
  133.     kTabCharCode                = 9;
  134.     kLineFeedCharCode            = 10;
  135.     kVerticalTabCharCode        = 11;
  136.     kPageUpCharCode                = 11;
  137.     kFormFeedCharCode            = 12;
  138.     kPageDownCharCode            = 12;
  139.     kReturnCharCode                = 13;
  140.     kFunctionKeyCharCode        = 16;
  141.     kEscapeCharCode                = 27;
  142.     kClearCharCode                = 27;
  143.     kLeftArrowCharCode            = 28;
  144.     kRightArrowCharCode            = 29;
  145.     kUpArrowCharCode            = 30;
  146.     kDownArrowCharCode            = 31;
  147.     kDeleteCharCode                = 127;
  148.     kNonBreakingSpaceCharCode    = 202;
  149.  
  150.  
  151. TYPE
  152.     EventRecordPtr = ^EventRecord;
  153.     EventRecord = RECORD
  154.         what:                    EventKind;
  155.         message:                UInt32;
  156.         when:                    UInt32;
  157.         where:                    Point;
  158.         modifiers:                EventModifiers;
  159.     END;
  160.  
  161.  
  162. {$IFC TYPED_FUNCTION_POINTERS}
  163.     FKEYProcPtr = PROCEDURE;
  164. {$ELSEC}
  165.     FKEYProcPtr = ProcPtr;
  166. {$ENDC}
  167.  
  168.     FKEYUPP = UniversalProcPtr;
  169.  
  170. CONST
  171.     uppFKEYProcInfo = $00000000;
  172.  
  173. FUNCTION NewFKEYProc(userRoutine: FKEYProcPtr): FKEYUPP;
  174.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  175.     INLINE $2E9F;
  176.     {$ENDC}
  177.  
  178. PROCEDURE CallFKEYProc(userRoutine: FKEYUPP);
  179.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  180.     INLINE $205F, $4E90;
  181.     {$ENDC}
  182. PROCEDURE GetMouse(VAR mouseLoc: Point);
  183.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  184.     INLINE $A972;
  185.     {$ENDC}
  186. FUNCTION Button: BOOLEAN;
  187.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  188.     INLINE $A974;
  189.     {$ENDC}
  190. FUNCTION StillDown: BOOLEAN;
  191.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  192.     INLINE $A973;
  193.     {$ENDC}
  194. FUNCTION WaitMouseUp: BOOLEAN;
  195.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  196.     INLINE $A977;
  197.     {$ENDC}
  198. FUNCTION TickCount: UInt32;
  199.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  200.     INLINE $A975;
  201.     {$ENDC}
  202. FUNCTION KeyTranslate(transData: UNIV Ptr; keycode: UInt16; VAR state: UInt32): UInt32;
  203.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  204.     INLINE $A9C3;
  205.     {$ENDC}
  206. FUNCTION GetCaretTime: UInt32;
  207.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  208.     INLINE $2EB8, $02F4;
  209.     {$ENDC}
  210.  
  211. TYPE
  212.     KeyMap                            = PACKED ARRAY [0..127] OF BOOLEAN;
  213.  
  214. PROCEDURE GetKeys(VAR theKeys: KeyMap);
  215.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  216.     INLINE $A976;
  217.     {$ENDC}
  218.  
  219.  
  220. { Obsolete event types & masks }
  221.  
  222. CONST
  223.     networkEvt                    = 10;
  224.     driverEvt                    = 11;
  225.     app1Evt                        = 12;
  226.     app2Evt                        = 13;
  227.     app3Evt                        = 14;
  228.     app4Evt                        = 15;
  229.     networkMask                    = $0400;
  230.     driverMask                    = $0800;
  231.     app1Mask                    = $1000;
  232.     app2Mask                    = $2000;
  233.     app3Mask                    = $4000;
  234.     app4Mask                    = $8000;
  235.  
  236.  
  237. TYPE
  238.     EvQElPtr = ^EvQEl;
  239.     EvQEl = RECORD
  240.         qLink:                    QElemPtr;
  241.         qType:                    SInt16;
  242.         evtQWhat:                EventKind;                                {  this part is identical to the EventRecord as defined above  }
  243.         evtQMessage:            UInt32;
  244.         evtQWhen:                UInt32;
  245.         evtQWhere:                Point;
  246.         evtQModifiers:            EventModifiers;
  247.     END;
  248.  
  249. {$IFC TYPED_FUNCTION_POINTERS}
  250.     GetNextEventFilterProcPtr = PROCEDURE(VAR theEvent: EventRecord; VAR result: BOOLEAN);
  251. {$ELSEC}
  252.     GetNextEventFilterProcPtr = Register68kProcPtr;
  253. {$ENDC}
  254.  
  255.     GetNextEventFilterUPP = UniversalProcPtr;
  256.  
  257. CONST
  258.     uppGetNextEventFilterProcInfo = $000000BF;
  259.  
  260. FUNCTION NewGetNextEventFilterProc(userRoutine: GetNextEventFilterProcPtr): GetNextEventFilterUPP;
  261.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  262.     INLINE $2E9F;
  263.     {$ENDC}
  264.  
  265. PROCEDURE CallGetNextEventFilterProc(VAR theEvent: EventRecord; VAR result: BOOLEAN; userRoutine: GetNextEventFilterUPP);
  266.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  267.     {To be implemented:  Glue to move parameters into registers.}
  268.     {$ENDC}
  269.  
  270. TYPE
  271.     GNEFilterUPP                        = GetNextEventFilterUPP;
  272. FUNCTION GetEvQHdr: QHdrPtr;
  273.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  274.     INLINE $2EBC, $0000, $014A;
  275.     {$ENDC}
  276. FUNCTION GetDblTime: UInt32;
  277.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  278.     INLINE $2EB8, $02F0;
  279.     {$ENDC}
  280. PROCEDURE SetEventMask(value: EventMask);
  281.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  282.     INLINE $31DF, $0144;
  283.     {$ENDC}
  284. FUNCTION PPostEvent(eventCode: EventKind; eventMsg: UInt32; VAR qEl: EvQElPtr): OSErr;
  285.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  286.     INLINE $225F, $201F, $305F, $A12F, $2288, $3E80;
  287.     {$ENDC}
  288. FUNCTION KeyTrans(transData: UNIV Ptr; keycode: UInt16; VAR state: UInt32): UInt32;
  289.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  290.     INLINE $A9C3;
  291.     {$ENDC}
  292. FUNCTION GetNextEvent(eventMask: EventMask; VAR theEvent: EventRecord): BOOLEAN;
  293.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  294.     INLINE $A970;
  295.     {$ENDC}
  296. FUNCTION WaitNextEvent(eventMask: EventMask; VAR theEvent: EventRecord; sleep: UInt32; mouseRgn: RgnHandle): BOOLEAN;
  297.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  298.     INLINE $A860;
  299.     {$ENDC}
  300. FUNCTION EventAvail(eventMask: EventMask; VAR theEvent: EventRecord): BOOLEAN;
  301.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  302.     INLINE $A971;
  303.     {$ENDC}
  304.  
  305. FUNCTION PostEvent(eventNum: EventKind; eventMsg: UInt32): OSErr;
  306.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  307.     INLINE $201F, $305F, $A02F, $3E80;
  308.     {$ENDC}
  309. FUNCTION OSEventAvail(mask: EventMask; VAR theEvent: EventRecord): BOOLEAN;
  310.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  311.     INLINE $205F, $301F, $A030, $5240, $1E80;
  312.     {$ENDC}
  313. FUNCTION GetOSEvent(mask: EventMask; VAR theEvent: EventRecord): BOOLEAN;
  314.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  315.     INLINE $205F, $301F, $A031, $5240, $1E80;
  316.     {$ENDC}
  317. PROCEDURE FlushEvents(whichMask: EventMask; stopMask: EventMask);
  318.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  319.     INLINE $201F, $A032;
  320.     {$ENDC}
  321. PROCEDURE SystemClick({CONST}VAR theEvent: EventRecord; theWindow: WindowPtr);
  322.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  323.     INLINE $A9B3;
  324.     {$ENDC}
  325. PROCEDURE SystemTask;
  326.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  327.     INLINE $A9B4;
  328.     {$ENDC}
  329. FUNCTION SystemEvent({CONST}VAR theEvent: EventRecord): BOOLEAN;
  330.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  331.     INLINE $A9B2;
  332.     {$ENDC}
  333.  
  334.  
  335. {$ALIGN RESET}
  336. {$POP}
  337.  
  338. {$SETC UsingIncludes := EventsIncludes}
  339.  
  340. {$ENDC} {__EVENTS__}
  341.  
  342. {$IFC NOT UsingIncludes}
  343.  END.
  344. {$ENDC}
  345.